// 数组的方法
/**
 * push(要添加的内容)向后添加，会改变原数组
 * 
 * unshift(要添加的内容)向前添加，会改变原数组
 * 
 * pop()无参数，即使有也不起作用  删除最后一个
 * 
 * shift()无参数，即使有也不起作用，删除最后一个
 * 
 * slice(开始下标，结束下标)，不会改变原数组    新数组是截取的的元素，不包括结束下标
 * 
 * splice()  会改变原数组（原数组是删除添加之后的）
 *   1.一个参数，表示开始位置，从开始位置截取，直到结束,返回值是截取的字符，原数组为剩余的
 *   2.两个参数，开始截取的下标，截取的个数,返回值是删除的项，原数组是剩余的项
 *   3.三个参数，表示开始的位置，删除的个数，添加的项，数量可以不等，返回值是删除的项，原数组是修改后的项
 * 
 * concat() 返回值是连接之后的，原数组不变
 * 
 * indexOf（要查找的项，开始的位置）找到返回值为下标，找不到返回-1
 * 
 * join（分隔符）把数组中的每一项按分隔符组成字符串,没有返回值
 * 
 * reverse()有返回值（返回的是反转之后的值），原数组会改变
 * 
 * 
 * 参数是函数
 * every 返回值是布尔值  必须数组的每一项都符合条件，返回的才是true,否则是false，
 * 
 * some 返回值是布尔值   数组中只要有一项符合条件，就返回true，否则返回false
 * 
 * filter 返回的是满足条件的原数组不变
 * 
 * map  返回的是修改后的
 * 
 * foreach遍历的是每一项，没有返回值
 * 
 * reduce/reduceRight(前一项，当前项，当前项的下标，数组) 后两个没有就是数组的每一项相加的和
 * 
 * sort 排序，从低到高 a-b;从高到低 b-a;
 * 
 * Array.isarray()判断是否是数组，返回布尔值
 * 
 * typeof array  判断是否是数组，类数组返回的是object
 */

// let arr = [1, 2, 3];
// arr.push(3);
// console.log(arr) //[ 1, 2, 3, 3 ]

// let arr = [1, 2, 3];
// arr.unshift(2, 2, 3)
// console.log(arr)//[ 2, 2, 3, 1, 2, 3 ]

// let arr = [1, 2, 3, 4];
// arr.pop()
// console.log(arr)//[ 1, 2, 3 ]

// let arr = [1, 2, 3, 4];
// arr.shift()
// console.log(arr) //[ 2, 3, 4 ]

// let arr = [];
// arr.shift()
// console.log(arr) //[]

// let arr = [1, 2, 3, 5, 4, 5];
// console.log(arr.slice(1, 4)) //[ 2, 3, 5 ]
// console.log(arr.slice(1)) //[ 2, 3, 5, 4, 5 ]

// let arr = [1, 2, 3, 5, 4, 5];
// arr.splice(1)
// console.log(arr) //[1]

//let arr = [1, 2, 3, 5, 4, 5];
//console.log(arr.splice(1)) //[ 2, 3, 5, 4, 5 ]

// let arr = [1, 2, 3, 4, 5, 6]
// arr.splice(1, 2)
// console.log(arr) //[ 1, 4, 5, 6 ]

// let arr = [1, 2, 3, 4, 5, 6]
// console.log(arr.splice(1, 2)) //[ 2, 3 ]

// let arr = [1, 2, 3, 4, 5];
// console.log(arr.splice(0, 3, 3)) //[ 1, 2, 3 ]

// let arr = [1, 2, 3];
// arr.splice(1, 0, 3, 3, 3)
// console.log(arr) //[ 1, 3, 3, 3, 2, 3 ]

// let arr = [1, 2, 4];
// arr.splice(1, 1, 3, 3, 3)
// console.log(arr) //[ 1, 3, 3, 3, 4 ]

// let arr = [1, 2, 3, 4];
// let arr1 = [1, 4, 4, 5];
// arr.concat(arr1);
// console.log(arr); //[ 1, 2, 3, 4 ]
// console.log(arr1); //[ 1, 4, 4, 5 ]
// console.log(arr.concat(arr1)) //[ 1, 2, 3, 4, 1, 4, 4, 5 ]

// let arr = [1, 3, 4, 6, 7];
// console.log(arr.indexOf(6, 2)) //3
// console.log(arr.indexOf(6, 4)) //-1

// let arr = [1, 3, 4, 5];
// console.log(arr.join()) //1,3,4,5默认
// console.log(arr.join('$')) //1$3$4$5
// console.log(arr.join("%")) //1%3%4%5

// let arr = [1, 3, 4, 5];
// arr.reverse()
// console.log(arr) //[ 5, 4, 3, 1 ]

// var obj = {
//     name: "zs",
//     age: 12
// }
// var data = [{
//         name: "zs",
//         age: 12
//     },
//     {
//         name: "ss",
//         age: "12"
//     }
// ]
// var flag = data.some(function(i) {
//     return i.name === obj.name && i.age === i.age
// })
// console.log(flag) //只要有一项对应就返回true

// var flag1 = data.every(function(i) {
//     return i.name == obj.name && i.age == obj.age
// })
// console.log(flag1) //只要有一项不符就返回false

// let arr = [1, 2, 3, 5, 6, 7, 6];
// var newarr = arr.filter((i) => {
//     return i < 5
// })
// console.log(newarr)//[ 1, 2, 3 ]

// let arr = [1, 2, 3, 5, 6, 7, 6];
// var newarr = arr.map((i) => {
//     return i * 5
// })
// console.log(newarr) //[ 5, 10, 15, 25, 30, 35, 30 ]

// let arr = [1, 2, 3, 5, 6, 7, 6];
// arr.forEach((i) => {
//     console.log(i) //遍历输出每一项
// })

// let arr = [1, 4, 3, 5, 7, 3];
// arr.sort(function(a, b) {
//     return a - b
// })
// console.log(arr)//[ 1, 3, 3, 4, 5, 7 ]

// let arr = [1, 4, 3, 5, 7, 3];
// arr.sort(function(a, b) {
//     return b - a
// })
// console.log(arr) //[ 7, 5, 4, 3, 3, 1 ]

// let arr = [1, 2, 3];
// let sum = arr.reduce(function(prev, cur) {
//     return prev + cur
// })
// console.log(sum) //6

// let arr = [1, 2, 3];
// let sum = arr.reduce(function(prev, cur, index, array) {
//     console.log(index, array)
//         //1 [ 1, 2, 3 ]
//         //2 [ 1, 2, 3 ]
//     return prev + cur
// })
// console.log(sum) //6